package com.yilin.platform.service.message;


import com.baomidou.mybatisplus.extension.service.IService;
import com.yilin.platform.entity.enums.user.UserType;
import com.yilin.platform.entity.message.PushRecord;
import com.yilin.platform.entity.user.Account;
import com.yilin.platform.service.impl.message.MessageData;

import java.util.Map;

public interface IPushService extends IService<PushRecord> {

    void deleteByDate(String startDate, String endDate);

    void sendNotificationByUser(Account toAccount, MessageData.MessageType messageType, MessageData.DataType dataType, String text, String originalUrl);

    void sendMessageByAlias(String platId, UserType userType, String[] alias, String title, String text,
                            Map<String, Object> extendDataMap);

    void sendMessageByPushId(String[] pushIds, String title, String text, Map<String, Object> extendDataMap);

    void sendNotificationByUserType(Account loginUser, UserType userType, String title, String text, Map<String, Object> extendDataMap);

    void sendMessageByTerminal(PushRecord.PushTarget pushTarget, String title, String text, Map<String, Object> extendDataMap);

    void sendMessageByTags(String tags, String title, String text, Map<String, Object> extendDataMap);

    void updateAliasAndTag(Account loginUser, String pushId, String alias, String tag);
}
